﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Caching;
namespace ECommerce.DAO.Cache.Productos
{
    public static class Producto
    {
        public static ECommerce.Model.Productos.Producto GetProductoById(Int32 Id)
        {
            return (ECommerce.Model.Productos.Producto)ECommerce.DAO.Cache.CacheHelper.GetObjetoById(Id);
        }
        //public static ECommerce.Model.Productos.Producto GetProductoById(Int32 Id)
        //{
        //    ECommerce.Model.Productos.Producto Producto = new ECommerce.Model.Productos.Producto();
        //    try
        //    {
        //        Producto = (ECommerce.Model.Productos.Producto)HttpRuntime.Cache["Producto-" + Id];
        //    }
        //    catch (Exception ex)
        //    {
        //        Producto = null;
        //    }
        //    if ( Producto!=null)
        //        if (Producto.Id == 0)
        //            Producto = null;
        //    return Producto;
        //}
        public static int SetProducto(ECommerce.Model.Productos.Producto Producto)
        {
            return ECommerce.DAO.Cache.CacheHelper.SetObjeto(Producto);
        }
        //public static int SetProducto(ECommerce.Model.Productos.Producto Producto)
        //{
        //    int result = 0;
        //    try
        //    {
        //        HttpRuntime.Cache.Insert("Producto-" + Producto.Id.ToString(), Producto);
        //    }
        //    catch (Exception ex)
        //    {
        //    }
        //    return result;
        //}
        public static int DelProducto(ECommerce.Model.Productos.Producto Producto)
        {
            return ECommerce.DAO.Cache.CacheHelper.DelObjeto(Producto);
        }
        //public static int DelProducto(ECommerce.Model.Productos.Producto Producto)
        //{
        //    try
        //    {
        //        HttpRuntime.Cache.Remove("Producto-" + Producto.Id.ToString());
        //    }
        //    catch (Exception ex)
        //    {
        //    }
        //    return Producto.Id;
        //}
        public static ECommerce.Model.Productos.Producto[] GetProductosByIdFamilia(int IdFamilia)
        {
            ECommerce.Model.Productos.Producto[] Productos;
            try
            {
                Productos = (ECommerce.Model.Productos.Producto[])HttpRuntime.Cache["ProductosByIdFamilia-" + IdFamilia.ToString()];
            }
            catch (Exception ex)
            {
                Productos = null;
            }
            if (Productos!=null)
                if (Productos.Length == 0)
                    Productos = null;
            return Productos;
        }
        public static int SetProductosByIdFamilia(ECommerce.Model.Productos.Producto[] Productos, int IdFammilia)
        {
            try
            {
                HttpRuntime.Cache.Insert("ProductosByIdFamilia-" + IdFammilia.ToString(), Productos);
            }
            catch (Exception ex)
            {
            }
            return IdFammilia;
        }
        public static int DelProductosByIdFamilia(int IdFamilia)
        {
            try
            {
                HttpRuntime.Cache.Remove("ProductosByIdFamilia-" + IdFamilia.ToString());
            }
            catch (Exception ex)
            {
            }
            return IdFamilia;
        }

        public static void SetPackagesByIdProducto(ECommerce.Model.Productos.Package[] Packages, int IdProducto)
        {
            try
            {
                HttpRuntime.Cache.Insert("PackagesByIdProducto-" + IdProducto.ToString(), Packages);
            }
            catch (Exception ex)
            {
            }
        }
        public static int DelPackagesByIdProducto(int IdProducto)
        {
            try
            {
                HttpRuntime.Cache.Remove("PackagesByIdProducto-" + IdProducto.ToString());
            }
            catch (Exception ex)
            {
            }
            return IdProducto;
        }
    }
}
